convert from docker to composite action using gh api#4
Merged
jameskoll-whatnot merged 3 commits intoWhatnot-Inc:masterfrom Mar 26, 2026
Merged
convert from docker to composite action using gh api#4jameskoll-whatnot merged 3 commits intoWhatnot-Inc:masterfrom
jameskoll-whatnot merged 3 commits intoWhatnot-Inc:masterfrom
Conversation
Replace the Docker-based action with a composite action that runs directly on the runner host using `gh api` instead of curl. This eliminates Docker's network namespace as a DNS failure point and leverages gh's built-in retry logic for transient network errors. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
gh api does not have built-in retry for transient network errors. Re-add retry handling by matching on gh's actual stderr error message strings (verified against cli/cli source): - DNS: "error connecting to" (gh's special DNSError formatting) - Connection: "connection refused", "connection reset by peer" - Timeout: "connection timed out", "operation timed out", "context deadline exceeded", "i/o timeout", "TLS handshake timeout" - Pipe: "broken pipe" Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Composite actions run the script directly on the host rather than via a Docker ENTRYPOINT, so the file needs the executable bit set. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
jameskoll-whatnot
approved these changes
Mar 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
runs: using: docker) to composite (runs: using: composite), runningentrypoint.shdirectly on the runner host instead of inside an Alpine containercurlcalls withgh api, which handles authentication viaGH_TOKEN, has built-in retry logic for transient network errors (DNS, connection, timeout), and uses the runner host's DNS resolverghhandles this nativelyContext
Occasional
curl: (6) Could not resolve host: api.github.comDNS failures have been observed during the status polling loop. The Docker container's network namespace introduces an extra DNS proxy hop (container -> Docker DNS proxy -> host resolver -> upstream) that can fail independently of the host. Moving to a composite action eliminates this layer and ensures API calls use the host's DNS resolver directly, which benefits from any private network peering configuration.Breaking changes
None. All inputs, outputs, and behavior are identical. Workflows using
Whatnot-Inc/trigger-workflow-and-wait@masterrequire no changes.🤖 Generated with Claude Code